DEFINITION MODULE GetObject;

(*
Manipulating AES Object Structure.

UK __DATE__ __TIME__
*)

(*DEF_SWITCHES*)

FROM RcMgr  IMPORT GPnt,GRect;
FROM PORTAB IMPORT ANYPOINTER,UNSIGNEDWORD,ANYWORD,SIGNEDWORD;

IMPORT AES;

PROCEDURE Next(Tree : AES.TreePtr;
               Index: AES.ObjectIndex): AES.ObjectPtr;

PROCEDURE Head(Tree : AES.TreePtr;
               Index: AES.ObjectIndex): AES.ObjectPtr;

PROCEDURE Tail(Tree : AES.TreePtr;
               Index: AES.ObjectIndex): AES.ObjectPtr;

PROCEDURE Extnd(Tree : AES.TreePtr;
                Index: AES.ObjectIndex): UNSIGNEDWORD;

PROCEDURE Type(Tree : AES.TreePtr;
               Index: AES.ObjectIndex): AES.ObjectTypes;

#if no_set_return
PROCEDURE Flags(Tree : AES.TreePtr;
                Index: AES.ObjectIndex): ANYWORD;
#else
PROCEDURE Flags(Tree : AES.TreePtr;
                Index: AES.ObjectIndex): AES.ObjectFlag;
#endif
#if no_set_return
PROCEDURE State(Tree : AES.TreePtr;
                Index: AES.ObjectIndex): ANYWORD;
#else
PROCEDURE State(Tree : AES.TreePtr;
                Index: AES.ObjectIndex): AES.ObjectState;
#endif
PROCEDURE Spec(Tree : AES.TreePtr;
               Index: AES.ObjectIndex): ANYPOINTER;

PROCEDURE X(Tree : AES.TreePtr;
            Index: AES.ObjectIndex): SIGNEDWORD;

PROCEDURE Y(Tree : AES.TreePtr;
            Index: AES.ObjectIndex): SIGNEDWORD;

PROCEDURE Width(Tree : AES.TreePtr;
                Index: AES.ObjectIndex): UNSIGNEDWORD;

PROCEDURE Height(Tree : AES.TreePtr;
                 Index: AES.ObjectIndex): UNSIGNEDWORD;

PROCEDURE Pnt(    Tree : AES.TreePtr;
                  Index: AES.ObjectIndex;
              VAR Pnt  : GPnt);

PROCEDURE Rect(    Tree : AES.TreePtr;
                   Index: AES.ObjectIndex;
               VAR Rect : GRect);

TYPE ColorInfo = RECORD
                   FrameColor : AES.ObjectColors;
                   TextColor  : AES.ObjectColors;
                   Mode       : AES.InsideModes;
                   Pattern    : AES.InsidePatterns;
                   InsideColor: AES.ObjectColors;
                 END;

PROCEDURE Color(    Tree : AES.TreePtr;
                    Index: AES.ObjectIndex;
                VAR Info : ColorInfo);

PROCEDURE StringPtr(Tree : AES.TreePtr;
                    Index: AES.ObjectIndex): AES.StringPtr;

PROCEDURE String(    Tree : AES.TreePtr;
                     Index: AES.ObjectIndex;
                 VAR Str  : AES.String);

END GetObject.
